The present invention generally relates to data processing units, and more particularly to a data processing unit which transfers data between another data processing unit via a network.
In a data processing system such as a parallel computer system having a plurality of data processing units which are coupled via a network or the like, a parallel data processing is carried out by transferring data among the plurality of data processing units.
Conventionally, when transferring the content of a storage region of an arbitrary data processing unit to another data processing unit, a transfer request queue is provided to queue data transfer requests made with respect to the other data processing unit, and a user program which is executed by an instruction processor successively enqueues the transfer requests to the transfer request queue. A transfer processor, which operates independently of the instruction processor, carries out a transfer process by reading the transfer request from the transfer request queue as long as the transfer request is enqueued in the transfer request queue. Such a system is proposed in a Japanese Laid-Open Patent Application No.4-167842, for example. According to the above described system, it is possible to greatly improve the throughput because the instruction processor and the transfer processor operate independently and the load and overhead of the instruction processor are reduced.
But according to the conventional system described above, when a series of data are divided into a plurality of packets and transferred and the end of the transfer is monitored at the receiving end by polling the arrival of the packet of the last data, an intermediate packet may be missing from the series of data transmitted from the transmitting end. In other words, when transferring the series of data in packets, the transmission of an intermediate one of the packets may be suppressed due to a failure at the transmitting end such as a program exception and a machine check (or hardware damage). In this case, although the transmission of the intermediate packet is suppressed, the transfer process advances to the next packet, and there is no way of knowing at the receiving end that the intermediate packet was not transferred. Therefore, there was a problem in that the receiving end erroneously recognizes the normal end of the data transmission when the packet of the last data arrives, even though not all of the data was transferred and the intermediate packet is missing.